<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MVVM</title>
</head>
<body>
<div id="app">
    <h2>{{name}}</h2>
    <button v-on:click="show">提示</button>
</div>
<script src="./mvvm-master/js/observer.js"></script>
<script src="./mvvm-master/js/compile.js"></script>
<script src="./mvvm-master/js/watcher.js"></script>
<script src="./mvvm-master/js/mvvm.js"></script>
<script>
    /**
     * 模版解析: 事件指令解析
     * 1. 从元素节点中取出指令
     * 2. 从指令名中取出事件名
     * 3. 根据指令的值(表达式)从methods中得到对应的回调函数
     * 4. 给当前元素节点绑定指定的事件名和回调函数(指定this指向为vm)
     * 5. 移除元素的指令属性
     */
    const vm = new MVVM({
        el: "#app",
        data: {
            name: "aa"
        },
        methods:{
            show(){
                alert("这是一个提示" + this.name)
            }
        }
    });

    function show(){
        alert("这是一个提示" + this.name)
    }
    show();

    var btn = document.getElementById("btn");
    btn.addEventListener("click", show, false)

</script>
</body>
</html>